home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / util / misc / hcmenu.lha / HCMenu / Doc / English / HCMenu.Doc next >
Text File  |  1997-10-14  |  15KB  |  368 lines

  1. Subject:    Haute-Cuisine Menu V1.8
  2. Author:        E. Th. van den Oosterkamp.
  3. AssembleDate:    10-Apr-95
  4. SystemDemands:    None. The HCMenu supports all KickStart versions.
  5.  
  6.  
  7.  
  8. Introduction.
  9. =============
  10.  
  11. The HCMenu is an interactive menusystem, which is primary meant for exe-
  12. cuting software in a quick and easy way. Personally, I use this menu from
  13. October 1992 and is now a lot better compared to V1.0 (...ahem...).
  14. This menu is coded since I can't stand WorkBench. Although the WB is a
  15. lot better compared to my V1.3 WB in 1992, I personally find a menu
  16. to be much handier.
  17. Now I know people using a keymap (Youknow: F1 for ASM-One, F2 for DPaint
  18. etc. ), but that reminds me of a PC, and an Amiga should do much better.
  19. Nowadays, this menu is designed for using on a KS2.0 machine or higher.
  20. Although it will run perfectly on a KS1.3 machine, but some functions
  21. will be disabled. The support of the older kickstarts is done for users
  22. who want to install the HCMenu on a floppy. When this floppy is used on
  23. an old system it will work (the HCMenu on it I mean..)
  24.  
  25.  
  26. Description.
  27. ============
  28.  
  29. The HCMenu uses a so-called "menufile". This is not more or less as a
  30. normal textfile inwhich the name and functions of the items are found.
  31. It is possible to use SubMenu's, where the HCMenu provides the
  32. flexibility to enable the user to define the structure of the total
  33. menu -and submenu system.
  34. All settings may be stored as a snapshot. Information like coordinates,
  35. sizes, colors are written in a binary file.
  36.  
  37.  
  38. The MenuFile.
  39. =============
  40.  
  41. The menu was primary written for a simple person (me) and therefor the
  42. menufile is kept simple. The simplicity of the menufile decreases the
  43. size needed to tell the menu what the wishes are, but testing for errors
  44. is very difficult for the menu.
  45.  
  46. Just to say it in one breath: The first in the menufile are the names
  47. (following one every line) of all items in the same order as they
  48. should appear in the menu. The HCMenu will center the names and show
  49. them in the items.
  50. The line with the last itemname is followed by a line with ONLY a
  51. percent sign on it (%). When the HCMenu finds this line, it assumes
  52. that on the following lines the commands belonging to the items
  53. will appear.
  54. The commands are stored in the same order as the names were. Each line
  55. is dedicated to one item.
  56.  
  57.  
  58. A menufile example:
  59.  
  60. -----------------------------------------------------------------------
  61. ToolMenu
  62. ASM-One
  63. DPaint
  64. DirOpus
  65.  
  66. GamesMenu
  67. Nothing
  68. MenuEdit
  69. %
  70. @dh1:tools/tool.menu
  71. dh1:assembler/asm-one
  72. cd dh1:iff; run dh1:grafiek/dpaint
  73. dh1:tools/diropus
  74. @dh1:games/games.menu
  75.  
  76. run ed s:main.menu
  77. -----------------------------------------------------------------------
  78.  
  79. In the above example some special characters are found (like "@" and the
  80. semicolon). The semicolon acts like a "command-separator". With the use
  81. of the separator, multiple commands may be used on one line. In the
  82. example above this is used to set the currentdirectory to a datadir
  83. before executing the program.
  84. The "@" means that the item is used for a submenu. The submenu sign (@)
  85. MUST be placed as the FIRST character of the line. Following the sign
  86. is the name (and path) of the menufile which contains the menu. For a
  87. submenu command-separators can't be used.
  88.  
  89. To obtain an "empty spot" instead of an item, just keep the line with
  90. the name for the item blank (See the above example, between the
  91. "DirOpus" -and "GamesMenu" item). For this (invisible) and function-
  92. less item no commands must be specified. This can be seen in the
  93. above example: between the "dh1:tools/diropus" line and the "@dh1:
  94. games/games.menu" line there is no commandline for the invisible item.
  95. Be sure the line containing the itemname is totally empty, and does
  96. not contain any spurious spaces or tabs!
  97.  
  98. To obtain a item without a function, just keep the commandline empty.
  99. This is shown with the "Nothing" item in the above example.
  100.  
  101. Some menufile rules:
  102.  
  103. - Always one thing per line. itemname/SubMenuName+path/commands. 
  104. - Don't use spaces before or after an itemname. This will prevent the
  105.   HCMenu from centering the name correctly. The HCMenu does NOT check
  106.   the size of the name. When the name does not fit in the item, it just
  107.   will look ugly.
  108. - SearchPaths, commands and special characters (excluding the semicolon)
  109.   MUST start at the first position of the line.
  110.  
  111. PS:    When the creation of a menufile is to difficult, please take a
  112.     look at my HCMenuEditor. The HCME is a tool specially made to
  113.     make the creation of a menu much easier. The HCMenuEditor does
  114.     need, however, a kickstart version 2.0 or higher.
  115.  
  116.  
  117. Menu functions.
  118. ===============
  119.  
  120. This may sound odd, but the HCMenu also owns it's  menu. In this case
  121. I mean an intuition menubar. Now I will discuss the functions and
  122. items in the menubar, one by one:
  123.  
  124. The project menu:
  125.  
  126. - Open Menu    - Opens a ReqTools filerequester with which the user may
  127.           select a menufile. The menufile will be loaded and the
  128.           menu will use the contents...
  129. - Edit Menu    - This option will invoke the editor defined in the
  130.           prefswindow (as described later). The editor will load
  131.           the actual menufile and the user may edit the file.
  132. - NewShell    - Opens a shell window.
  133. - Load Snapshot    - Loading previously saved settings. There are three pos-
  134.           sibillities: "General", "Local" and "Default".
  135.           The difference between "General" and "Local" snapshots
  136.           is explained in the following section. "Default" will
  137.           activate the build-in standard snapshot.
  138. - Save Snapshot - Saving of the actual settings. Now there are only two
  139.           possibilities: "General" and "Local". More about this
  140.           in the next section.
  141. - About        - Information over the program, copyrights and stuff.
  142. - Quit        - The HCMenu closes and all memory will be freed. Also
  143.           try the closegadget on the window...
  144.  
  145. The prefs menu:
  146.  
  147. - NoClick    - This function only works with KS2.0 or higher. The
  148.           annoying clicking of the diskdrives may be switched off.
  149. - '*'=WildCard    - This function also needs KS2.0 or higher. The
  150.           wildcards used in all applications are now extended
  151.           with the asterisk as used with SM-DOS computers. (Yep
  152.           you saw it right: SM-DOS). Now *.info means the same
  153.           as #?.info...
  154. - Border    - This option determines if there is a 3D-border around
  155.           the items or not. Sometimes a border looks real nice,
  156.           but sometimes it looks not-so-nice. The "lightsource"
  157.           always comes from the upper-left corner, it doesn't
  158.           matter how the colors are defined.
  159. - Warnings    - Eventual warnings from the HCMenu will be suppressed
  160.           when this item is not checkmarked. These warnings
  161.           always appear in requesters. An example of a warning
  162.           is the "Are you sure?" question when writing the
  163.           general snapshot.
  164. - Blanker    - Using the build-in ScreenBlanker. The menuBlanker is
  165.           described later.
  166. - SelectBar    - The selectbar is a bar which is driven by the cursor-
  167.           keys. With the <enter> key a menuitem is activated.
  168.           The selectbar is influenced by "invisible" items!
  169. - Alt + Esc    - Enable the hotkey function. Hotkey: One of the <Alt>
  170.           keys in combination with the <Esc> key. When the
  171.           hotkey is pressed the HCMenu will be activated.
  172. - WinBarInfo    - The sreenbar always contains information about the
  173.           free memory. With this option this information may
  174.           be shown in the windowbar also.
  175. - Local Snap    - As already mentioned: the HCMenu uses two types of
  176.           snapshots. The "General" type is always used, while
  177.           the "Local" type is only used when this menuitem is
  178.           checkmarked. See also the next section.
  179. - DoubleClick    - People using WorkBench are used to doubleclick things.
  180.           Normally the HCMenu would start the same commands two
  181.           times when doubleclicked. When this item is checkmarked
  182.           HCMenu only reacts on items if they are doubleclicked.
  183. - Colors    - Activate one of the three pre-defined colorsets or just
  184.           reset the old colors. The latter was build in since
  185.           some tools changed my colors, something of which I don't
  186.           think to be neat.
  187. - Prefs        - Open the HCMenu-preferences window. With this window
  188.           some things may be altered. The window size (with a
  189.           minmum of 67) and the number of items per line. The
  190.           name of a logfile (no name will disable the logfile)
  191.           and the time-delay for the screenblanker. Also the name
  192.           of the editor may be specified. When reqtools.library
  193.           was found a fontrequester may be used to select the
  194.           font used for the itemnames.
  195.           Clicking "Okay" will activate the changes, "Cancel"
  196.           will discard every change made.
  197.  
  198.  
  199.  
  200. The two SnapShot's.
  201. ===================
  202.  
  203. As already mentioned: the HCMenu uses two different snapshots to store
  204. the users preferences.
  205. The first snapshot is the "General" snapshot. There is only one "General"
  206. snapshot which contains general information of the HCMenu. Things as the
  207. name of the menueditor, logfile, screenblanker, etc are stored in this
  208. file.
  209. When the item "Local Snap" in the prefs-menu is checkmarked the "Local"
  210. snapshot is enabled. This "Local" snapshot contains information for one
  211. specific menu only. Information like size, coordinations and colors are
  212. stored in this file. Now it is possible to use different sizes for
  213. different menus.
  214. When the HCMenu can't find a "Local" snapshot belonging to a menufile,
  215. it will use the information stored in the "General" snapshot. When the
  216. "General" snapshot can't be found the "Default" information will be used.
  217.  
  218.  
  219. The "General" Snapshot.
  220. -----------------------
  221.  
  222. This snapshot is a binary file stored in the ENVARC: directory. This dir
  223. is the standard KS2.0 directory for this kind of files. The name of the
  224. file is "HCMenu.prefs", please don't change the file since the HCMenu
  225. will refuse to load it properly! In the file the following information
  226. (and the default) is stored:
  227.  
  228. Menu:        S:Main.Menu
  229. Items:        1 per line.
  230. Width:        128 pixels.
  231. x/y coord:    x = 0 en y = 11.
  232. Zip coord:    x = 0 en y = 0.
  233. Prefs:        Drives quiet    on
  234.         '*'=WildCard    off
  235.         Borders        on
  236.         Warnings     on
  237.         ScreenBlanker     off
  238.         SelectorBar     on
  239.         Alt+Escape    on
  240.         WinBarInfo     off
  241.         Local Snap    off
  242.         DoubleClick     off
  243. BlankTime:    5 minutes.
  244. BlankFile:    (None).
  245. LogFile:    (None).
  246. Editor:        Ed
  247. FontName:    Topaz
  248. Fontheigth:    8
  249. SubMenuColor:    1
  250. ItemColor:    1
  251.  
  252.  
  253. The "Local" SnapShot.
  254. ---------------------
  255.  
  256. The "Local" snapshot of a menu can always be found in the same directory
  257. as the menufile. The snapshot will also carry the same name, but extended
  258. with .snap.
  259. The information in the "Local" snapshot: Position of the window, the size
  260. of the window, number of items/line and the colornumbers for the item and
  261. submenu colors.
  262.  
  263.  
  264. ScreenBlanker.
  265. ==============
  266.  
  267. This topic is mentioned before and here I will describe the screenblanker
  268. build in the HCMenu.
  269. A screenblanker is a programm which observes the users input. When there
  270. is no input from the user in a certain time, the screenblanker makes the
  271. screen black. This is done to prevent the monitor for burin-in damage.
  272. The duration of the time inwhich the lack of userinput :^) will activate 
  273. the blanker ,the "blanktime", may be specified by the user.
  274. The screenblanker of the HCMenu uses both the mouse and the keyboard as
  275. the sources for the "userinput". The blanktime may be spceified in the
  276. prefs window (MenuBar->Prefs->Prefs...).
  277. The standard menublanker in the HCMenu will use a black screen with one
  278. blue, moving, bar. When the user moves the mouse, or the keyboard, the
  279. screenblanker will be inactivated and the normal screen will be active
  280. again.
  281. The HCMenu screenblanker also allows the user to use other effects
  282. during the blanking. When an other effect is used instead of the
  283. standard effect, the name of the new effect should be specified in
  284. the "Effect" stringgadget in the prefs window. When the standard effect
  285. should be used, please clear the gadget. (Activate it by clicking and
  286. press RightAmiga-X). When the effect could not by found the user will
  287. be notified directly and the standard effect will be used.
  288. Some additional rules for programming external blankereffects:
  289.  
  290.     - When executed, it should start rightaway. No requesters or
  291.       other user-interactions should be needed.
  292.     - When the user starts the input again the effect should stop
  293.       immediately. Waiting for the LeftMouseButton only is never
  294.       enaugh!
  295.     - Use as less processortime as possible!
  296.     - Use re-intrant code! The effect will be loaded once and
  297.       executed every time it is needed! WARNING: Crunched code
  298.       NEVER is reintrant!
  299.  
  300.  
  301. History.
  302. ========
  303.  
  304. A short impression in the live of a programm...
  305.  
  306. new in 1.8:
  307.     -    Two different snapshots: General/Local. The latter is new.
  308.     -    Borders around the prefswindow gadgets.
  309.     -    Wildstar/DoubleClick/WinBarInfo in PrefsMenu.
  310.  
  311.  
  312. 1.7    -    Fonts userdefined. KS2.0 zoomgadged instead of sleepGadget.
  313. 1.6    -    SelectorBar. Alt+Escape. KS3.0 compatible colorreset.
  314. 1.5    -    The prefsmenu is born. Using snapshot. ScreenBlanker.
  315. 1.4    -    Menu gets on top when activated. Code very optimized.
  316. 1.3    -    Adaptions for KS2.0. Using shell instead of the CLI.
  317. 1.2    -    SubMenus. Color resetting.
  318. 1.1    -    CLI-detach routine. Lightsourced items from the lefttop.
  319. 1.0    -    6 Gadgets in a row in a 640 pixels window.
  320.  
  321.  
  322. Thanks.
  323. =======
  324.  
  325. From this place I like to thank M. de Reuver for his beta-testing, bug-
  326. reports and useful suggestions. His remarks made the HCMenu more user
  327. friendly at several places.
  328. Also I like to thank both M. van Aalten and M. Blomsma for their ideas
  329. about how a menu should work.
  330. Further I like to thank Michael Sinz for upgrading the Enforcer. It
  331. helped me to remove some nasty things which I would never have found
  332. without    the help of Enforcer.
  333.  
  334.  
  335. Blablabla.
  336. ==========
  337.  
  338. All versions of the Haute-Cuisine Menu (including the former ETOMenu
  339. versions) are "cardware". This means that they may be copied under
  340. certain circumstances only.
  341. These circumstances are:
  342.  
  343.     - There will be no profit gained for the copying, but a nominal
  344.       fee for the media may be charged.
  345.     - The complete archive is distributed without any changes.
  346.     - You (as the one who copied this product) send me a postcard
  347.       telling me that you use the software...
  348.  
  349. The copyrights for the HCMenu and it's documents still belong to me,
  350. the author of both the software and the documents. I cannot be held
  351. responsible for anything bad or good happening to you after copying
  352. and using this product.
  353.  
  354. If you like to get a new version (when finished) with E-Mail, just
  355. E-mail me, but please note your current version of the HCMenu.
  356.  
  357. For bugreports, ideas, questions and your postcard, I'm available at:
  358.  
  359.             E-Mail:    eto@icns.nl
  360.             WWW:    http://www.icns.nl/users/eto
  361.  
  362.             Ing. E. Th. van den Oosterkamp
  363.             Vijverstraat 11
  364.             4103 XX Culemborg
  365.             Nederland.
  366.  
  367. Thanks for watching, but now something completely different:
  368.